package br.fir.compiladores.util;

import br.fir.compiladores.util.excecoes.ExcecaoGenerica;
import br.fir.compiladores.util.excecoes.ExcecaoSistema;

/**
 * 
 */
public abstract class DAO {
	// ~ Construtores
	// ---------------------------------------------------------------------------------------------------------------

	/**
	 * Cria um novo objeto DAO.
	 */
	public DAO() {
		super();
	}

	// ~ Metodos
	// --------------------------------------------------------------------------------------------------------------------

	/**
	 * -
	 * 
	 * @param pNmClasse
	 * @param pDsDebug
	 * @param pExcecao
	 * 
	 * @throws ExcecaoGenerica
	 * @throws ExcecaoSistema
	 */
	protected static void tratarExcecao(String pNmClasse, String pDsDebug,
			Exception pExcecao) throws ExcecaoGenerica {
		if (pExcecao instanceof ExcecaoGenerica) {
			throw (ExcecaoGenerica) pExcecao;
		}
		throw new ExcecaoSistema(pNmClasse + " | " + pDsDebug, pExcecao);
	}
	/**
	 * -
	 * 
	 * @param pDsDebug
	 * @param pExcecao
	 * 
	 * @throws ExcecaoGenerica
	 */
	protected void tratarExcecao(String pDsDebug, Exception pExcecao)
			throws ExcecaoGenerica {
		DAO.tratarExcecao(this.getClass().getName(), pDsDebug, pExcecao);
	}
}
